OPT_LEVEL  := 3
MYSQL_INC  := /usr/include/mysql
MYSQLPP_INC := /usr/include/mysql++
MYSQL_LIB  := /usr/lib/mysql
MYSQL_SO   := /usr/lib/libmysqlclient.so
MYSQLPP_SO := /usr/lib/libmysqlpp.so
FUSE_SO    := /usr/lib/libfuse.so
PROFFLAGS  := -pg
DEBUG := -g
CFLAGS     := -I. -I./mysqlbinlog -I$(MYSQL_INC) -I$(MYSQLPP_INC) -O$(OPT_LEVEL) $(DEBUG) $(PROFFLAGS) -Wall -MD -MP -fPIC -std=c++0x
LDFLAGS    := $(DEBUG) $(PROFFLAGS) -O$(OPT_LEVEL) -I$(MYSQL_INC) -I$(MYSQLPP_INC) -L. -L$(MYSQL_LIB) -Wall -Werror -rdynamic\
 -lmysqlpp -lmysqld -lmysqlclient -lz -lcrypt -lnsl -lm -lpthread  -lrt -ldl
SO         :=  $(MYSQL_SO) $(FUSE_SO) $(MYSQLPP_SO)
OBJS	   := obj/serializer.o obj/log.o obj/offset_table.o obj/pool.o obj/fusexmp.o \
obj/table.o obj/sqlfs.o obj/replication_ignore.o obj/monitor.o obj/main.o 
BINLOG_CFLAGS := -Imysqlbinlog -Imysqlbinlog/include -I$(MYSQL_INC) $(DEBUG) -O$(OPT_LEVEL) -Wall -MD -MP -fPIC
BINLOG_OBJS := mysqlbinlog/obj/mf_tempdir.o \
	mysqlbinlog/obj/my_new.o mysqlbinlog/obj/my_bit.o \
	mysqlbinlog/obj/my_bitmap.o \
	mysqlbinlog/obj/my_vle.o mysqlbinlog/obj/base64.o \
	mysqlbinlog/obj/logparser.o
XMP_OBJS   := obj/xmpmain.o obj/fusexmp.o obj/log.o 
CREDIT_OBJS := obj/credit.o
all: sqlfs xmp credit




xmp: $(XMP_OBJS)
	g++ -o $@ $(LDFLAGS) $(SO)  $(XMP_OBJS)
	
sqlfs: $(OBJS) $(BINLOG_OBJS) 
	g++ -o $@ $(LDFLAGS) $(SO) $(OBJS) $(BINLOG_OBJS)  

test: obj/test.o
	g++ -o $@ $(LDFLAGS) $(SO) obj/test.o

mysqlbinlog/obj/%.o: mysqlbinlog/%.cc
	g++ -c -o $@ $(BINLOG_CFLAGS) $<
	
mysqlbinlog/obj/%.o: mysqlbinlog/%.c
	gcc -c -o $@ $(BINLOG_CFLAGS) $<
	
obj/%.o: %.cc
	g++ -c -o $@ $(CFLAGS) $<

clean:
	rm -rf obj/* mysqlbinlog/obj/* sqlfs test xmp
